//
//	tools.js
//
//	(c) Daniel Bershatsky, 2013
//	(c) Eugene Glushkov, 2013
//

//	Преобразует строку в последовательность двухбайтных слов.
function toBytes(str) {
	var bytes = [];

	for (var i = 0; i < str.length; i++) {
		bytes[i] = str.charCodeAt(i);
	}

	return bytes;
}

//	Преобразует двухбайтное слово в битовый массив.
function toBits(word) {
	var bits = [];
	var mask = 0x0001;

	for (var i = 0; i < 16; i++) {
		bits[i] = (word >> i) & mask;
	}

	return bits;
}

function bitsToString(bits) {
	var str = "";

	for (var i = 0; i < bits.length; i++) {
		str += bits[i].toString();
	}

	return str;
}

//	Случайная величина, равновероятно принимающая значения {0, 1}.
function getRandomBit() {
	return Math.round(Math.random());
}

//	Генерирует строку случайных бит заданной длинны.
function getRandomBitString(len) {
	var bstr = [];

	for (var i = 0; i < len; i++) {
		bstr[i] = getRandomBit();
	}

	return bstr;
}

//	Генерирует строку случайных бит заданной длинны.
function getRandomBitStringR(len, rng) {
	var bstr = [];

	for (var i = 0; i < len; i++) {
		bstr[i] = Math.round(Math.random(rng));
	}

	return bstr;
}

function displayPhotons(photons) {
	var photo_cont = $('#photons');
	
	photo_cont.empty();
	
	for(var i = 0; i < photons.length; i++) {
		var angle = (photons[i])%360;
		photo_cont.append('<img id="photon'+i+'" class="rotate'+angle+'" title="'+angle+'" src="assets/img/arrow.png" />');
	}
	
	return 0;
}

function hide_all() {
	for (var i=1; i <=4; i++) {
		$('.result'+i).css("display","none");
	}
	
	$('.protocol_construction').css('display','none');
	
	$('body').animate({scrollTop: 0}, 'slow');
	
}

function clean_all() {
	

	document.getElementById(".sideA.basis").value = "";
	document.getElementById(".sideB.basis").value = "";

	document.getElementById(".sideA.value").value = "";
	document.getElementById(".sideB.value").value = "";

	document.getElementById(".sideA.key").value = "";
	document.getElementById(".sideB.key").value = "";
	
	$(".qubitEff").text("");
	$("#encMessage").text("");
	
	return 0;
}

